A source file containing source code may be compiled via a compiler into an Intermediate Language (IL). Source code represents any of various types of computer programming codes written in any type of computer programming language. A compiler may be any computer program language compiler including but not limited to C, C++, C#, and Visual Basic. IL is platform independent and represents an intermediate stage of conversion between source code and platform specific native code for execution. Various debug tools can only debug code that has compiled to IL.
Many managed applications, such MSBuild and Monad, function as an interpreter on some source-level input. Typical managed-debuggers can only debug code that compiles to IL. Since the source-language input to these tools is interpreted and not compiled to IL, it is not debuggable with current managed-debuggers.
Such tools do not have a good debugging scenario for end-users debugging their inputs. Either the inputs are not debuggable, or end-users must use some highly-specialized debugger-tool written by the tool author. Such specialized debuggers are generally costly for the tool author to produce and have very limited functionality.